package abstractClass;
//抽象类只能用来继承，不能用来实例化创建对象
//多用来描述系统应该具有的功能，不关心如何实现
//是一种“规范”，常常在里面写子类函数的函数声明
//抽象类的子类要么也是抽象类，要么就要 实现 抽象类所规定的功能
abstract class A {
    int a;

    public A() {
        a = 0;
    }

    public abstract void fun();

//    其内部也可以写一般的函数
    public void print() {
        System.out.println(a);
    }
}
class B extends A{
public B(){
    super();
}
public void fun(){
    System.out.println("子类实现了抽象父类的功能");
}
}
public class abstractClass {
    public static void main(String[] args) {
    A b=new B();//动态多态
//    B b=new B();
    b.fun();//实现
    b.print();//复用
//        继承的作用：复用；规定子类的必须实现的功能（抽象类）
    }
}
